#ifndef DEF_B_SPLINE
#define DEF_B_SPLINE

#include <iostream>
#include <vector>
#include <string>

using namespace std;

class B_spline 
{
public:
	// Constructeur
	B_spline(vector<vector<double> > Coord, vector<double> Vec,int deg) ;
	// Destructeur 
	~B_spline() ;
	// calcul des fonction en un point
	// Attention, pas teste
	vector<double> basisfun(double u) ;
	// Insertion de Node_vector 
	// Attention, pas teste
	void bspkntins(vector<double> u ) ;
	// trouve ou se trouve le noeud recherche
	// Attention, pas teste
	int findspan(double u) ;
	// Affichage
	void affiche() ;
	// Creation de la B_spline derivee
	void bspderiv(int d) ;
	// Calcul des derives des fonctions
	vector< vector<double> > derbasisfuns(int nders, double u) ;
private:
   // points de controle
	vector< vector<double> > control_point ;
   // vecteur de noeuds
	vector<double> node_vector ;
   // Degres
   int degre ;
};

#endif
